import java.util.Arrays;

/**
 * @author caesar
 * @date 2025/7/1
 * @apiNote
 */
/*## 查找数组中个数过半的数字
案例需求：有一个长度为10的整型元素的数组arr，其中有一个元素出现次数超过n / 2，求这个元素。
int[] arr = {1, 2, 3, 2, 2, 2, 5, 4, 2};
开发提示：
- 对数组进行排序
- 取占据数组中间位置的元素，如果某个数字出现的次数过半，那么给数组排序后，这个数字一定会占据数组中间的位置
- 统计占据数组中间位置的元素实际出现的次数，这样就不用统计每一个数字出现的次数了*/
public class homework2_9 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 2, 2, 2, 5, 4, 2};
        //方法一
        //Arrays.sort(arr);
        //方法二
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    int t = arr[i];
                    arr[i] = arr[j];
                    arr[j] = t;
                }
            }
        }
        System.out.println("排序后的数组为：");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println("数组中间的元素为"+arr[(arr.length-1)/2]);
        int sum = 0;
        for(int i = 0; i < arr.length; i++){
            if(arr[i] == arr[(arr.length-1)/2]){
                sum++;
            }
        }
        System.out.println("数组中间的元素出现的次数为"+sum);
    }
}
